package com.spring.springcloud.RocketMQ.第二章RocketMQ的安装与启动;

/**
 * 1 消息（Message）
 * 消息是指，消息系统所传输信息的物理载体，生产和消费数据的最小单位，
 * 每条消息必须属于一个主题。
 *
 * 2 主题（Topic）
 * Topic表示一类消息的集合，每个主题包含若干条消息，每条消息只能属于一个主题，
 * 是RocketMQ进行消息订阅的基本单位。
 *      topic:message 1:n       message:topic 1:1
 * 一个生产者可以同时发送多种Topic的消息；
 * 而一个消费者只对某种特定的Topic感兴趣，
 * 即只可以订阅和消费一种Topic的消息。
 *      生产者:topic 1:n   消费者:topic 1:1
 *
 * 3 标签（Tag）
 * 4 队列（Queue）
 *  一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费。
 *  一个Queue中的消息不允许同一个消费者组中的多个消费者同时消费。
 * 5.消息标识（MessageId/Key）
 * RocketMQ中每个消息拥有唯一的MessageId，且可以携带具有业务标识的Key，以方便对消息的查询。
 * 不过需要注意的是，MessageId有两个：在生产者send()消息时会自动生成一个MessageId（msgId)，
 * 当消息到达Broker后，Broker也会自动生成一个MessageId(offsetMsgId)。msgId、offsetMsgId与key都
 * 称为消息标识。
 * msgId：由producer端生成，其生成规则为：
 *      producerIp + 进程pid +
 *      MessageClientIDSetter类的ClassLoader的hashCode +
 *      当前时间 + AutomicInteger自增计数器
 * offsetMsgId：由broker端生成，其生成规则为：
 *      brokerIp + 物理分区的offset（Queue中的偏移量）
 * key：由用户指定的业务相关的唯一标识
 */
public class A_基本概念 {
}
